package edu.hut;

/**
 * AdapterCircle类充当了对Circle类的适配器角色，使得Circle类能够以符合特定需求的方式被使用。
 * 例如，它可以在不改变Circle类原有实现的基础上，调整其在某些场景下的行为表现或提供额外的功能。
 *
 * @author Guoqian
 * @version 1.0
 * @since  2024-11-14 16:18
 */
public class AdapterCircle implements Polygon{

    private Circle circle;

    /**
     * 构造函数，用于创建AdapterCircle对象并传入要适配的Circle对象。
     * @param circle 要被适配的Circle对象，通过该对象可以调用Circle类中的相关方法来实现适配功能。
     */
    public AdapterCircle(Circle circle) {
        this.circle = circle;
    }

    /**
     *重写的绘制方法，用于调用被适配的Circle对象的绘制圆的方法，以实现绘制圆的功能
     */
    @Override
    public void draw() {
        circle.drawCircle();
    }

    /**
     * 重写的方法，用于判断是否可以形成圆。
     * @return 如果Circle对象的半径大于等于0，则返回true，表示可以形成圆；否则返回false。
     */
    @Override
    public boolean canForm() {
        if (circle.radius>0) {
            return true;
        } else {
            return false;
        }
    }

    /**
     *重写的方法，用于计算被适配的Circle对象所代表的圆的面积。
     * @return 返回被适配的Circle对象所代表的圆的面积，通过调用Circle类中的areaCircle方法获取。
     */
    @Override
    public float calcArea() {
        return circle.areaCircle();
    }



}
